package org.xshop.web;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by BaiJiFeiLong@gmail.com at 2018/4/14 16:47
 */
@RestController
@RequestMapping("/app/apiSpec")
@Api(tags = "ApiSpec", description = "API接口规范")
public class ApiSpecController {

    @ApiOperation(value = "请求", notes = "" +
        "请求：GET请求参数放在URL查询串中，POST请求参数放在Body中\n" +
        "必传字段1：UUID(header) 客户端生成的用户唯一ID，作令牌用，用于标识用户与验证用户权限\n" +
        "必传字段2：sign 请求参数的RSA签名。除获取密钥的接口(/app/secret.api)外必传。" +
        "签名规则：各个请求参数按key顺序排列，组成URL查询串（类似a=1&b=2），取前100个字符，MD5哈希成16个字节，" +
        "再编码成Base64字符串，后缀回车换行符号(\\r\\n)，再用私钥签名(使用SHA1WithRSA签名算法)成Base64字符串" +
        "")
    @GetMapping("/request")
    public void request() {
    }

    @ApiOperation(value = "响应", notes = "" +
        "响应：JSON格式，\n" +
        "1. 普通请求返回code,msg,timestamp三个字段\n" +
        "2. 查询单个数据返回code,msg,data,timestamp四个字段\n" +
        "3. 查询列表时返回code,msg,rows,total,timestamp五个字段\n" +
        "4. 查询分页时返回code,msg,rows,total,pages,size,current,timestamp八个字段，\n" +
        "code=200表示请求成功，其他表示失败，失败信息查看msg字段\n\n" +
        "")
    @GetMapping("/response")
    public void response() {
    }
}
